﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Utils;
using MySql.Data.MySqlClient;
using System.Data;

namespace Data
{
    public class Personas
    {
        protected Entities.Persona CreateInstance(DataRow row)
        {
            return new Entities.Persona(
                row["legajo"].ToInt32(),
                row["nombre"].ToString(),
                row["apellido"].ToString(),
                row["direccion"].ToString(),
                row["telefono"].ToString(),
                row["email"].ToString(),
                row["fecha_nacimiento"].ToDateTime()
            );
        }

        protected void Update(Entities.Persona instance)
        {
            if (instance.State != Commons.EntityState.Modified) return;

            string s = "UPDATE personas SET nombre = @nombre, apellido = @apellido, direccion = @direccion, telefono = @telefono, email = @email, fecha_nacimiento = @fecha_nacimiento WHERE legajo = @legajo";
            List<MySqlParameter> l = new List<MySqlParameter>();
            l.Add(new MySqlParameter("@nombre", instance.Nombre));
            l.Add(new MySqlParameter("@apellido", instance.Apellido));
            l.Add(new MySqlParameter("@direccion", instance.Direccion));
            l.Add(new MySqlParameter("@telefono", instance.Telefono));
            l.Add(new MySqlParameter("@email", instance.Email));
            l.Add(new MySqlParameter("@fecha_nacimiento", instance.FechaNacimiento));
            l.Add(new MySqlParameter("@legajo", instance.Legajo));
            new NonQuery(s, l).Execute();
        }

        public void Delete(Entities.Persona instance)
        {
            if (instance.State != Commons.EntityState.Deleted) return;

            string s = "DELETE FROM personas WHERE legajo = @legajo";
            List<MySqlParameter> l = new List<MySqlParameter>();
            l.Add(new MySqlParameter("@legajo", instance.Legajo));
            new NonQuery(s, l).Execute();
        }
    }
}
